/**
 * Created by 刘淳昊 2017-05-10
 */
window.onload = function () {
    init();
	
	
}
var _isClick = true;	// 防止多次点击

var userName = G_Cookie.getUserName();
var userPwd = G_Cookie.getUserPwd();
var init = function () {
    _immediatelyCheckName();
	_clickEvents();
	
    
}
/********************************************************************************
     函数名：_immediatelyCheckName
     功能：用户名输入的实时校验
     输入参数：无
     返回值：无
*******************************************************************************/
function _immediatelyCheckName() {
    var element = $('.loginUl input[type=tel]');
    if ("\v" === "v") {
        element.onpropertychange = webChange;
    } else {
        element.keyup(webChange, false);
    }
    function webChange() {
        $('.loginUl input[type=password]').val('');
    }
}
/********************************************************************************
     函数名：_clickEvents
     功能：用户点击事件
     输入参数：无
     返回值：无
*******************************************************************************/
function _clickEvents(){
	//点击登录
	$('.loginForm .button_login').click(function () {
        if(_isClick){
            _login();
        }
    });
    //当标记为记住密码时，保存他的值
    $('#keeppassword').click(function(){
    	$(this).toggleClass('keeppassworded');
		if(!$('#keeppassword').hasClass('keeppassworded')){
			G_Prg.setCookie('ispassword',0);
		}else{
			G_Prg.setCookie('ispassword',1);
			
		}
  	})
	if(G_Prg.getCookie('ispassword')== 1){
	  	$('#keeppassword').removeClass('keeppassworded').addClass('keeppassworded');
	  	if (userName&&userName.indexOf('ks')==-1 ) {
	    	$('.loginUl input[type=tel]').val(userName);
	        if (userPwd) {
	            var pwdArr = userPwd.split(',');
	            $('.loginUl input[type=password]').val(pwdArr[0].substring(0, Number(pwdArr[1])));
	        }
	    }
	}
	//立即注册点击跳转
	$('#register_immediately').click(function(){
 		window.location.href='signup.html?fromUrl=login.html&type=register';

    });
    //忘记密码点击跳转
 	$('#forget_psw').click(function(){
 		window.location.href='signup.html?fromUrl=login.html&type=forget';
 	});
}
/********************************************************************************
 * 函数名：_login
 * 功能：调用接口登录
 * 输入参数：
 * 返回值：返回登录信息
 * 修改内容：无
 *******************************************************************************/
 function _login() {
    _isClick = false;
    var userName = $('.loginUl input[type=tel]').val();
	if (!_checkUserName()) {
	    _isClick = true;
	    return;
	}
	var loginType = 1;
	if (G_Prg.checkEmail(userName)) {
	    loginType = 2;
	}
	if (G_Prg.checkCellPhone(userName)) {
	    loginType = 3;
	}
	
	var userPassword = $('.loginUl input[type=password]').val();
	var cookiePwd = G_Cookie.getUserPwd();
	var userPasswordMd5 = '';
	var pwdArr = null;
	if (cookiePwd) {
	    pwdArr = cookiePwd.split(',');
	}
	if (cookiePwd && pwdArr && userPassword === pwdArr[0].substring(0, Number(pwdArr[1]))) {//如果记录了密码
	    userPasswordMd5 = pwdArr[0];
	} else {
	    if (!_checkPwd()) {
	        _isClick = true;
	        return;
	    }
	    userPasswordMd5 = hex_md5(userPassword);
	}
	var _success = function (json) {
	    if (!json) {
	        G_Prg.throw('程序运行错误，服务端无返回数据');
			_isClick = true;
		}
		var jsonData = JSON.parse(json);
		if (jsonData.status === 200) {
			G_Prg.cleanCookie();
			G_Cookie.setUserID(jsonData.data.userID);
			G_Cookie.setUserName(userName);
			G_Cookie.setGuid(jsonData.data.guid);
			G_Prg.setCookie('NICKNAME', jsonData.data.NickName);
			G_Cookie.setUserPwd(userPasswordMd5 + ',' + userPassword.length);
		    _loginSuccess(jsonData);
		} else if (jsonData.status === 201) {
		    _isClick = true;
		    $('.loadingDiv,.loadingDrop').hide();
			window.scrollTo(0, 0);
			G_Prg.popMsg('用户名或者密码不正确',1000,'isCenter');
		$('.loginUl input[type=password]').val('');
		} else if (jsonData.status === 300) {
		    _isClick = true;
		    $('.loadingDiv,.loadingDrop').hide();
			window.scrollTo(0, 0);
			G_Prg.throw('程序运行错误，数据库获取数据异常');
		} else if (jsonData.status >= 400 && jsonData.status < 500) {
		    _isClick = true;
		    $('.loadingDiv,.loadingDrop').hide();
		} else {
		    _isClick = true;
		    $('.loadingDiv,.loadingDrop').hide();
			window.scrollTo(0, 0);
			G_Prg.throw('抱歉，不能处理 ，' + jsonData.status + '"！');
		}
	};
	var agentCode = G_AgentInfo.getAgentCode();
	var URL = '/api/user/userlogin';
	var params  = {
	    'username': userName,
		'password': userPasswordMd5,
		'userAgent': _getUserAgent(),
		'clientType': _getClientType()
	};
	G_AjaxApi_ZBRecord.post(URL, params, false, _success);
};


/********************************************************************************
 * 函数名：_loginSuccess
 * 功能：登录成功执行函数
 * 输入参数：登录成功返回的数据jsonData
 * 返回值：无
 * 修改内容：无
 *******************************************************************************/
function _loginSuccess(jsonData) {
    window.location.href = 'slectBook.html?fromUrl=login.html&value=userid';
}
    
/********************************************************************************
 * 函数名：_checkUserName
 * 功能：检查用户名是否输入的函数
 * 输入参数：
 * 返回值：无
 * 修改内容：无
 *******************************************************************************/
function _checkUserName() {
    var userName = $('.loginUl input[type=tel]').val();
    if (!userName) {
    	G_Prg.popMsg('请输入您的手机号码',1000,'isCenter');
        return false;
    }
    return true;
}
/********************************************************************************
 * 函数名：_checkPwd
 * 功能：检查密码是否输入的函数
 * 输入参数：
 * 返回值：无
 * 修改内容：无
 *******************************************************************************/
function _checkPwd() {
    var userPassword = $('.loginUl input[type=password]').val();
    if (!userPassword) {
    	G_Prg.popMsg('请输入您的密码',1000,'isCenter');
        return false;
    }
    return true;
}
function _getUserAgent() {
    var userAgent = navigator.userAgent.split('/');
    return userAgent;
}
/********************************************************************************
 * 函数名：_getClientType
 * 功能：判断设备信息
 * 输入参数：
 * 返回值：无
 * 修改内容：无
 *******************************************************************************/
function _getClientType() {
    var browser = {
        versions: function() {
            var u = navigator.userAgent,
            app = navigator.appVersion;
            return {
                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
                iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
                iPad: u.indexOf('iPad') > -1,
                webApp: u.indexOf('Safari') == -1
            };
        } ()
    };
    if (browser.versions.iPhone || browser.versions.iPad) {
        return 'web_iPhone';
    }
    if (browser.versions.ios || browser.versions.android || browser.versions.webApp) {
        return 'web_android';
    }
    return 'web_pc';
}
